Главная arrow книги arrow Копия Глава 11. Основы планирования arrow Графы планирования
Графы планирования

Проиллюстрируем применение графов планирования на простом примере. (Использование более сложных примеров привело бы к созданию графов, которые не поместились бы на одной странице книги.) В листинге 11.5 приведена задача, а на рис. 11.6 показан ее граф планирования. Начнем с уровня состояния S0, который представляет начальное состояние задачи. Затем перейдем на уровень действия А0 и поместим на него все действия, предусловия которых были выполнены на предыдущем уровне. Каждое действие соединено с его предусловиями в состоянии S0 и его результатами в состоянии S1, а это в данном случае влечет за собой введение в s1 новых литералов, которых не было в S0.

Листинг 11.5. Задача "получить кекс, а также съесть кекс"

Должны быть предусмотрены способы представлять на графе планирования не только действие, но и бездействие. Это означает, что необходимо иметь своего рода эквивалент аксиом окружения ситуационного исчисления, которые позволяют литералу оставаться истинным от одной ситуации к другой, если его не изменяет ни одно действие. В графе планирования это осуществляется с помощью множества сохраняющих действий (persistence action). Для каждого положительного или отрицательного литерала С в задачу вводится сохраняющее действие с предусловием С и результатом С. На рис. 11.6 в состоянии А0 показано одно "реальное" действие, Eat {Cake) (съесть кекс), наряду с двумя сохраняющими действиями, обозначенными с помощью небольших квадратов.

Рис. 11.6. Граф планирования для задачи "получить кекс, а также съесть кекс" вплоть до уровня S2-Прямоугольники обозначают действия (маленькие квадраты обозначают сохраняющие действия), а прямые линии указывают на предусловия и результаты. Взаимно исключающие связи обозначены кривыми серыми линиями